home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / strategy / xsok-1.000 / xsok-1 / xsok-1.01 / solver / BFS.h < prev    next >
C/C++ Source or Header  |  1994-11-24  |  1KB  |  37 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <stdarg.h>
  5. #include <assert.h>
  6.  
  7. void fatal(const char *msg, ...);
  8. void *malloc_(size_t);
  9.  
  10.  
  11.  
  12. /* this is BFS.h, prototypes for generic Breadth-First-Search lib. */
  13. struct BFS {
  14.     size_t keylength;    /* number of bytes for the key of the data 2..4 */
  15.     size_t datalength;    /* total number of user bytes */
  16.     size_t ptrsize;    /* number of bytes for backptrs */
  17.     size_t totallength;
  18.     int hashbits;    /* has table has size 1 << hashbits */
  19.     int level;
  20.     unsigned char *hashtable;
  21.     unsigned char *data;
  22.     unsigned char *endhash;
  23.     unsigned long ndata;
  24.     unsigned long hashmask;    /* is equal to nr. of entries */
  25.     unsigned long read;        /* data item to read */
  26.     unsigned long write;    /* data item to write */
  27.     unsigned long stop;        /* helps for level wrap */
  28. };
  29.  
  30. void BFS_init(size_t keylength, size_t datalength, int hashbits,
  31.           unsigned long ndata, int backtrack);
  32. long BFS_store(void *data);    /* store data, return entrynr */
  33. int BFS_newlevel(void);        /* request new level */
  34. int BFS_retrieve(void *data);
  35. long BFS_getentry(long entrynr, void *data); /* returns predecessor */
  36.  
  37.